﻿using System.Threading.Tasks;
using System.Collections.Generic;
namespace Odyssey.Consul
{
    using Models;
    public interface IConnect
    {
        #region Certificate Authority

        Task<ResultConnectionCARootList> CARootList();

        Task<ResultCAConfiguration> CAGetConfiguration();

        Task CAUpdateConfiguration(ArguUpdateCAConfiguration arguUpdateCAConfiguration);
        #endregion

        #region Intention
        Task<ResultIntentionCheck> IntentionCreate(ArguIntention arguIntention);

        Task<ResultIntention> IntentionRead(string id);

        Task<List<ResultIntention>> IntentionList();

        Task IntentionUpdate(ArguIntention arguIntention);

        Task IntentionDelete(string id);

        Task<ResultIntentionCheck> IntentionCheck(ArguIntentionCheck arguIntentionCheck);

        Task<ResultIntentionMatchList> IntentionMatchList(ArguIntentionMatchList arguIntentionMatchList);

        #endregion
    }
}
